package com.ganmiao.utils;

import cn.hutool.core.codec.Base64;
import org.springframework.stereotype.Component;

@Component
public class Base64Util {

    /**
     * 功能描述:
     * 〈使用Base64进行加密〉
     *
     * @return : java.lang.String
     * @params : [plainText]
     * @author : cwl
     * @date : 2019/10/23 18:08
     */
    public String encode(String plainText) {
        return Base64.encode(plainText.getBytes());
    }

    /**
     * 功能描述:
     * 〈使用Base64进行解密〉
     *
     * @return : java.lang.String
     * @params : [plainText]
     * @author : cwl
     * @date : 2019/10/23 18:10
     */
    public String decoder(String plainText) {
        return Base64.decodeStr(plainText);
    }

    public static byte[] base64EncodeUrl(byte[] input) {
        byte[] base64 = java.util.Base64.getEncoder().encode(input);
        for (int i = 0; i < base64.length; ++i)
            switch (base64[i]) {
                case '+':
                    base64[i] = '*';
                    break;
                case '/':
                    base64[i] = '-';
                    break;
                case '=':
                    base64[i] = '_';
                    break;
                default:
                    break;
            }
        return base64;
    }

}
